package com.atguigu.srb.common.result;

import lombok.Data;

import java.util.HashMap;

import java.util.Map;
@Data
public class R {
    private Integer code;
    private String message;
    private Map<String,Object> data=new HashMap<>();
    private R(){} //构造函数私有初始化
    //成功返回
    public static R ok(){
        R r = new R();
        r.setCode(ResponseEnum.SUCCESS.getCode());
        r.setMessage(ResponseEnum.SUCCESS.getMessage());
        return r;
    }
    //失败返回
    public static R error(){
        R r = new R();
        r.setCode(ResponseEnum.ERROR.getCode());
        r.setMessage(ResponseEnum.ERROR.getMessage());
        return r;
    }
    //设置特定的结果
    public static R setResult(ResponseEnum result){
        R r = new R();
        r.setCode(result.getCode());
        r.setMessage(result.getMessage());
        return r;
    }
    //设置特定的响应的消息和状态码
    public  R Code(Integer code){
        this.setCode(code);
        return this;
    }

    public  R Message(String message){
        this.setMessage(message);
        return this;
    }
    //封装返回结果
    public R data(String key ,Object o){
        this.data.put(key,o);
        return this;
    }
    //如果返回内容是集合重写方法
    public R data(Map<String,Object> map){
        this.setData(map);
        return this;
    }

}
